package com.springboot.admin.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/************************************************************************
 *
 *    Copyright  Copyright 2021 Google Inc.
 *    File Name: FormTestController
 *    Description: 文件上传
 *
 *    Version: V1.0
 *    Author: Fuc
 *    Create Time: 2021-01-07
 *
 *************************************************************************/
@Controller
@Slf4j
public class FormTestController {

  @GetMapping("/form_layouts")
  public String form_layouts() {
    return "form/form_layouts";
  }

  /**
   * MultipartFile 自动封装上传过来的文件
   *
   * @param email
   * @param username
   * @param headerImg
   * @param photos
   * @return
   */
  @PostMapping("/upload")
  public String upload(
      @RequestParam("email") String email,
      @RequestParam("username") String username,
      @RequestPart("headerImg") MultipartFile headerImg,
      @RequestPart("photos") MultipartFile[] photos)
      throws IOException {

    log.info(
        "上传的信息：email={}，username={}，headerImg={}，photos={}",
        email,
        username,
        headerImg.getSize(),
        photos.length);

    if (!headerImg.isEmpty()) {
      // 保存到文件服务器，OSS服务器
      String originalFilename = headerImg.getOriginalFilename();
      headerImg.transferTo(new File("E:\\cache\\" + originalFilename));
    }

    if (photos.length > 0) {
      for (MultipartFile photo : photos) {
        if (!photo.isEmpty()) {
          String originalFilename = photo.getOriginalFilename();
          photo.transferTo(new File("E:\\cache\\" + originalFilename));
        }
      }
    }

    return "main";
  }

}
